<?php

@include_once("../config.php");
include_once(DAO."/Conexao.php");
include_once(ENTIDADE."/Relatorio.php");

/**
 * Classe Relatorio
 *
 * @author Falci
 * @package dao
 */
class RelatorioDAO {

    public function  __construct() {
        new Conexao;
    }

    public function ultimo(){
        $relatorio = new Relatorio;
        $query = mysql_query("SELECT * FROM relatorio ORDER BY data DESC LIMIT 1");

        if(mysql_num_rows($query) == 0) return false;

        while ($row = mysql_fetch_object($query)) {
            $relatorio->setId($row->id);
            $relatorio->setData($row->data);
            $relatorio->setAdmin($row->admin);
        }
        return $relatorio;
    }

    public function listar(){
        $query = mysql_query("SELECT * FROM relatorio ORDER BY data DESC;");

        $saida = Array();
        while ($row = mysql_fetch_object($query)) {
            $relatorio = new Relatorio;
            $relatorio->setId($row->id);
            $relatorio->setData($row->data);
            $relatorio->setAdmin($row->admin);
            $saida []= $relatorio;
        }
        return $saida;

    }

    public function somarTudo($id){
        $query = mysql_query("SELECT p.id pid, p.nome pnome, p.derivacao, f.nome fnome, f.familia, SUM(i.qtd) total, u.sigla
                              FROM produto p, familia f, itenspedido i, pedido p2, unidade u
                              WHERE p2.relatorio ".($id?"=$id":"is null")."
                              AND i.pedido=p2.id
                              AND i.produto=p.id
                              AND p.familia=f.id
                              AND f.unidade=u.id
                              GROUP BY p.id");

        $saida = Array();
        while ($row = mysql_fetch_object($query)) {
            $saida []= $row;
        }
        return $saida;
    }

    public function getSetores($id){
        $query = mysql_query("SELECT s.id, s.nome, COUNT(i.id) total
                              FROM setor s, itenspedido i, pedido p
                              WHERE p.relatorio ".($id?"=$id":"is null")."
                              AND i.pedido=p.id
                              AND p.setor=s.id
                              GROUP BY s.id");

        $saida = Array();
        while ($row = mysql_fetch_object($query)) {
            $saida []= $row;
        }
        return $saida;
    }

    public function getProdutos($relatorio,$produto){
        $query = mysql_query("SELECT i.id, s.nome snome, f.nome fnome, i.qtd
                              FROM itenspedido i, setor s, funcionario f, pedido p
                              WHERE p.relatorio ".($relatorio?"=$relatorio":"is null")."
                              AND i.pedido=p.id
                              AND i.produto=$produto
                              AND i.funcionario=f.id
                              AND p.setor=s.id
                              ORDER BY s.nome");

        $saida = Array();
        while ($row = mysql_fetch_object($query)) {
            $saida []= $row;
        }
        return $saida;
    }

    public function getProdutosSetor($relatorio,$setor){
        $query = mysql_query("SELECT i.id, f.nome fnome, f.familia, p.nome pnome, p.derivacao, i.qtd, u.sigla
                              FROM itenspedido i, familia f, produto p, pedido p2, unidade u
                              WHERE p2.relatorio ".($relatorio?"=$relatorio":"is null")."
                              AND i.pedido=p2.id
                              AND i.produto=p.id
                              AND p.familia=f.id
                              AND f.unidade=u.id
                              AND p2.setor=$setor
                              ORDER BY f.nome,p.nome");

        $saida = Array();
        while ($row = mysql_fetch_object($query)) {
            $saida []= $row;
        }
        return $saida;
    }

    public function buscaPorId($id){
        $relatorio = new Relatorio;
        $query = mysql_query("SELECT * FROM relatorio WHERE id=$id;");
        while ($row = mysql_fetch_object($query)) {
            $relatorio->setId($row->id);
            $relatorio->setData($row->data);
            $relatorio->setAdmin(AdminDAO::buscaPorId($row->admin));
        }
        return $relatorio;
    }

    public function totalRegistros(){
        $query = mysql_query("SELECT COUNT(id) FROM relatorio;");
        return mysql_result($query, 0);
    }

    public function listarPag($pagina=1){
        global $_CFG;
        $primeiro = $pagina * $_CFG['ppp'] - $_CFG['ppp'];
        $sql = "SELECT r.id,DATE_FORMAT(r.data,'%d/%m/%Y') data,a.nome admin
                FROM admin a,relatorio r
                WHERE r.admin = a.id
                ORDER BY r.data DESC
                LIMIT $primeiro,$_CFG[ppp];";
        $query = mysql_query($sql) or die("<pre>$sql</pre>".mysql_error());
        $saida = Array();

        while ($row = mysql_fetch_array($query)) {
            $saida []= $row;
        }

        return $saida;
    }

    public function totalPedido($idRelatorio){
        $sql = "SELECT COUNT(i.qtd) total, f.nome fam, p.nome prod, p.id prodID
                FROM itenspedido i, familia f, produto p, pedido p2
                WHERE i.produto = p.id
                  AND p.familia = f.id
                  AND i.pedido = p2.id
                  AND p2.relatorio = $idRelatorio
             GROUP BY i.produto
             ORDER BY f.nome, p.nome;";

        $query = mysql_query($sql);
        $saida = Array();
        while ($row = mysql_fetch_array($query)) {
            $saida []= $row;
        }
        return $saida;
    }

    public function porSetor($idRelatorio){
        $sql = "SELECT DISTINCT(p.setor) id, s.nome 
                FROM pedido p, setor s
                WHERE p.setor = s.id
                  AND p.relatorio = $idRelatorio
             ORDER BY s.nome;";

        $query = mysql_query($sql);
        $saida = Array();
        while ($row = mysql_fetch_array($query)) {
            $saida []= $row;
        }
        return $saida;
    }

    public function fechar(){
        mysql_query("INSERT INTO relatorio VALUES (0,'".date("Y-m-d")."',".$_SESSION['login']['admin'].");");
        $id = mysql_insert_id();
        mysql_query("UPDATE pedido SET relatorio=$id WHERE relatorio IS NULL;");
        return $id;
    }
}
?>